﻿using Didsoft.Mvc.Security;
using SIOGDE.AccesoDatos.Entidades;
using SIOGDE.Negocios.Global;
using SIOGDE.Negocios.Servicios;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace SIOGDE.Web.Controllers
{
    public class InfoController : Controller
    {
        //
        // GET: /Info/

        public ActionResult Index()
        {
            if (Didsoft.Mvc.Security.SessionContext<DTOUsuario>.SessionKey != null)
                return RedirectToAction("Index", "Menu");

            return View();
        }

        public ActionResult InfoGestion()
        {
            try
            {
                var gestionBusiness = BusinessFactory.Current.GetGestionNegocios();
                ViewBag.NombrePersonal = SIOGDE.Negocios.Global.Session.UserInfo.Persona.NombreCompleto;
                ViewBag.GestionActiva = gestionBusiness.GetGestionActiva();
                ViewBag.FechaInicioSesion = SessionContext<DTOUsuario>.DateStarted;

                List<Gestion> gestiones = null;
                if (SIOGDE.Negocios.Global.Session.UserInfo.Rol.Id == 1)
                {
                    gestiones = gestionBusiness.ObtenerTodas();
                }
                else
                {
                    gestiones = new List<Gestion>();
                    gestiones.Add(SIOGDE.Negocios.Global.Session.GestionActiva);

                }
                int idGestionSeleccionado = gestiones.Where(p => p.Id == ((Gestion)SessionContext<Object>.PeriodTag).Id).Select(p => p.Id).FirstOrDefault();
                var itemsGestiones = new SelectList(gestiones, "Id", "Nombre", idGestionSeleccionado);
                ViewBag.Gestiones = itemsGestiones;

                return PartialView();
            }
            catch (Exception)
            {
                return PartialView();
            }
        }


        [HttpPost]
        public ActionResult InfoGestion(FormCollection collection)
        {
            try
            {
                string[] periodos = collection.GetValues("TopItemsList");
                int gestionId = Convert.ToInt32(periodos[0]);

                Gestion periodo = BusinessFactory.Current.GetGestionNegocios().ObtenerPorId(gestionId);
                Didsoft.Mvc.Security.SessionContext<object>.SetPeriodTag(periodo);

                ViewBag.NombrePersonal = SIOGDE.Negocios.Global.Session.UserInfo.Persona.NombreCompleto;
                ViewBag.FechaInicioSesion = SessionContext<DTOUsuario>.DateStarted;
                ViewBag.GestionActiva = SIOGDE.Negocios.Global.Session.GestionActiva.Nombre;

                var gestionBusiness = BusinessFactory.Current.GetGestionNegocios();
                var gestiones = gestionBusiness.ObtenerTodas();
                int idGestionSeleccionado = gestiones.Where(p => p.Id == ((Gestion)SessionContext<Object>.PeriodTag).Id).Select(p => p.Id).FirstOrDefault();
                var itemsGestiones = new SelectList(gestiones, "Id", "Nombre", idGestionSeleccionado);
                ViewBag.Gestiones = itemsGestiones;

                return PartialView();
            }
            catch
            {
                return PartialView();
            }


        }  

    }
}
